# 负责整个项目默认的配置的信息

class Config:
    # 配置数据库和SQLAlchemy
    # 把参数配置到专门的环境中
    # 数据库配置
    HOSTNAME = 'localhost'
    PORT = '3306'
    DATABASE = 'test2'
    USERNAME = 'root'
    PASSWORD = 'root'  # 用户名，密码，主机名，端口号，文件名 # charset=utf8mb4' 这里主要是根据数据库的编码格式来的
    DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)

    # 把链接数据库的参数设置到app中
    SQLALCHEMY_DATABASE_URI = DB_URI # 判断数据库是否链接的URI
    SQLALCHEMY_TRACK_MODIFICATIONS = False # 是否跟踪数据库中数据的修改 一般我们是不需要跟踪的

    # 日志信息
    LOGGING_LEVEL = 'INFO' # 默认的日志级别
    LOGGING_FILE_DIR = 'logs/' # 保存在哪里相对路径
    LOGGING_FILE_MAX_BYTES = 300 * 1024 * 1024 # 设置文件保存大小300MB
    LOGGING_FILE_BACKUP = 10 # 备份文件个数

    # 采用Redis保存数据，默认的内存，需要安装flask_redis
    RATELIMIT_STORAGE_URL = 'redis://192.168.56.134:6379/0'
    # 限流策略：一定窗口:时间窗口会自动变化
    RATELIMIT_STRATEGY = 'moving-window' # 移动窗口

    # redis数据库的链接地址 # 使用1来存放缓存数据包括短信验证码
    REDIS_URL = 'redis://192.168.56.134:6379/1'



# 开发环境下的配置信息
class DevelopmentConfig(Config): # 继承父类
    DEBUG = True
    SQLALCHEMY_ECHO = True # 打印sql语句

# 生产环境中的配置信息
class ProductConfig(Config):
    pass




